home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 7
/
Amiga Format AFCD07 (Dec 1996, Issue 91).iso
/
serious
/
shareware
/
programming
/
aros
/
exec
/
semaphores.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-09-12
|
1KB
|
40 lines
/*
(C) 1995-96 AROS - The Amiga Replacement OS
$Id: semaphores.h,v 1.2 1996/08/01 17:41:27 digulla Exp $
$Log: semaphores.h,v $
Revision 1.2 1996/08/01 17:41:27 digulla
Added standard header for all files
Desc:
Lang:
*/
#ifndef SEMAPHORES_H
#define SEMAPHORES_H
#include <exec/tasks.h>
#include <exec/nodes.h>
/* Signal flag to awake tasks waiting on a semaphore */
#define SEMAPHORESIGF (0x8000)
/*
Node for a task waiting synchronously:
Maybe this shouldn't have a struct Node as first element - but I want
it to be compatible to Procure()'s struct SemaphoreMessage.
This means that ln_Name contains the lock type (SM_EXCLUSIVE or
SM_SHARED). And since ln_Type is NT_MESSAGE for semaphore messages
waiting on the semaphore list it isn't free either. The only field
left in the node is ln_Pri which contains the node type (see below).
*/
struct SemaphoreNode
{
struct Node node;
struct Task *task;
};
/* Node types in the semaphore's waiting queue */
#define SN_TYPE_OBTAIN 0
#define SN_TYPE_PROCURE 1
#endif